Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

SQL запрос на обработку массива слов (Денис Тимошенко)
Author Message
Денис Тимошенко
Заглянувший



Joined: 28 Jan 2005
Posts: 8
Карма: 0
   поощрить/наказать


PostPosted: Fri Feb 03, 2006 5:29 pm (написано за 6 минут 52 секунды)
   Post subject: SQL запрос на обработку массива слов
Reply with quote

Есть такой SQL-запрос:
Code (SQL): скопировать код в буфер обмена
SELECT DISTINCT
CONCAT(LEFT('программистом',13-LENGTH(a.repl)),a.find) AS FORM
-> FROM affix a, spell s
-> WHERE RIGHT('программистом',LENGTH(a.repl))=a.repl
-> AND INSTR(s.flag,a.flag)
-> AND a.type='s'
-> AND a.lang=s.lang
-> AND CONCAT(LEFT('программистом',13-LENGTH(a.repl)),a.find)=s.word
-> AND CONCAT(LEFT('программистом',13-LENGTH(a.repl)),a.find) RLIKE a.mask;
, где affix - таблица с правилами преобразования нормальной формы слова во все возможные другие (прим, "стол" -> "столом, столу, столами" и т.д.)
      spell - словарь
      find - окончане слова в нормальной форме
      repl - окончание слова в другой форме, в данном случае "-ом"
      flag - указывает, какую группу правил использовать.
      mask - регулярное выражение, указывающее на что должно оканчиваться слово, чтобы применить соответсвующее правило.

Вопрос: Как можно переделать запрос, чтобы он обрабатывал не одно слово, а сразу несколько, что-то типа
Code (SQL): скопировать код в буфер обмена
word IN ('word1','word2', ...)
Back to top
View user's profile Send private message
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 106
   поощрить/наказать

Location: Москва

PostPosted: Fri Feb 10, 2006 1:58 pm (спустя 6 дней 20 часов 29 минут; написано за 47 секунд)
   Post subject:
Reply with quote

В MySQL через временную таблицу.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Thu Mar 09, 2006 2:43 pm (спустя 27 дней 44 минуты; написано за 9 секунд)
   Post subject:
Reply with quote

Что есть "word"?
Как правильно задавать вопросы: статья, обязательная к прочтению (citforum.ru/howto/smart-questions-ru.shtml)
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML